Calculator

../Images/opencpn_manual_plugins_calculator_calculator.png

This plugin is available for Linux and Windows.

Goals

This is a light weight yet powerful calculator plugin for OpenCPN which includes functions to solve nautical questions.

Key features are:

Adding formulas is easy. If your favorite nautical equation is missing, please let me know your equation via flyspray, and I will add it.

Requirements

OpenCPN 4.2.0 and above.
Linux or Windows

Use

The calculator plugin allows you to carry out all nautical calculations, without having to leave the OpenCPN environment. The scientific calculator is capable of working with, and retaining variables.
* When starting the plugin for the first time, go to ../Images/opencpn_manual_settings.pngto find the plugin tab. Click on the calculator plugin, then the “Enable” button.

Help

Type help in the calculator to get these instructions.

Examples

Examples of expressions that work in the calculator are: (comments are in brackets, some results depend on other example calculations):

Hull speed:

Conversions:

Distance to horizon

Distance to lighthouse

Useful Notes

Built-in functions

The following table gives an overview of the functions supported by the default implementation. It lists the function names, the number of arguments and a brief description.

Name Argc. Explanation
TRIGONOMETRY default entry use radians e.g. sin(dtr*90) to calculate in degrees
sin 1 sine function
cos 1 cosine function
tan 1 tangens function
asin 1 arcus sine function
acos 1 arcus cosine function
atan 1 arcus tangens function
sinh 1 hyperbolic sine function
cosh 1 hyperbolic cosine
tanh 1 hyperbolic tangens function
asinh 1 hyperbolic arcus sine function
acosh 1 hyperbolic arcus tangens function
atanh 1 hyperbolic arcur tangens function
LOGARITHMIC
log2 1 logarithm to the base 2
log10 1 logarithm to the base 10
log 1 logarithm to the base 10
ln 1 logarithm to base e (2.71828…)
OTHER
exp 1 e raised to the power of x
sqrt 1 square root of a value
sign 1 sign function -1 if x<0; 1 if x>0
rint 1 round to nearest integer
abs 1 absolute value
min var. min of all arguments
max var. max of all arguments
sum var. sum of all arguments
avg var. mean value of all arguments

Built-in binary operators

The following table lists the default binary operators supported by the parser.

Operator Meaning Priority
= assignment -1
&& logical and 1
|| logical or 2
less or equal 4
>= greater or equal 4
!= not equal 4
== equal 4
> greater than 4
< less than 4
+ addition 5
- subtraction 5
* multiplication 6
/ division 6
^ raise x to the power of y 7
^ use ^(1/2) for square root 7

* The assignment operator is special since it changes one of its arguments and can only by applied to variables.

Other operators

MuParser

muParser has built in support for the if.. then.. else operator. It uses lazy evaluation in order to make sure only the necessary branch of the expression is evaluated.

Operator Meaning
?: if then else operator

Variables:

pi, e well known
ans the result of the previous calculation
dtr conversion factor from degrees to radians
Define variables e.g. myvariable=10/8*cos(dtr*90) or yourvariable=ans
clear removes results in the history and leaves defined variables in tact

User Interface:

Type these commands in the command window:

history Toggle the history panel
showhelp Show/Hide the Help button
showcalculate Show/Hide the Calculate button
showhistory Show/Hide the history toggle
help show the help menu

Settings/Plugins/Preferences:

Other:

Compiling

You have to be able to compile OpenCPN itself - Get the info atDevolpers Manual[1992]

Build out of OpenCPN branch!

in folder calculator_pi

After using wxformbuilder to modify the interface, use degreefix.sh, to facilitate the windows build. When updating the Excel file with formulas and conversions, convert to cpp code by running the supplied perl script

Changes to version 1.6

SaltyPaws aka Walbert Schulpen

Support for Diagrams

I believe the plugin supports small jpg & png images for the purpose of better visualization. What is needed to implement this system is some diagrams and more knowledge about the plugin. Rgleason

Early Executables

Earlier compiled library files can be downloaded/uploaded here. https://sourceforge.net/projects/opencpnplugins/[1994]

License

The plugin is licensed under the terms of GPL v2 or, at your will, later. The MuParser files are by Ingo Berg and is open source. For full licence, please see the muparser source files.